A communication network may be described as a geographically distributed collection of nodes interconnected by communication links and segments for transporting messages (e.g., data, voice, video) between communication units (end nodes), such as personal computers, certain telephones, personal digital assistants (PDAs), video units and the like. Many types of communication networks are used within the art, with the types ranging from local area networks (LANs) to wide area networks (WANs). LANs may connect nodes over dedicated private communications links located in the same general geographical location, such as a building or campus. WANs, on the other hand, may connect large numbers of geographically dispersed nodes over long-distance communications links, such as common carrier telephone lines. The Internet is an example of a WAN that may connect networks throughout the world, providing global communication between nodes on various networks. The nodes may communicate over the network by exchanging discrete frames or packets of data according to predefined protocols, such as the Transmission Control Protocol/Internet Protocol (TCP/IP). In this context, a protocol is a set of rules defining how the nodes interact with each other.
Communication networks are increasingly being used to transport many forms of information including, e.g., voice and video information. There are many protocols defined to allow information (e.g., voice traffic) over a network designed to transport traditional data traffic. One such protocol is voice-over-internet protocol (VoIP).
VoIP refers to a group of technologies that may be used to transmit e.g., voice information over communication networks from a source (calling party) to a destination (called party). Such networks typically include a plurality of agents that convert e.g., voice and/or video information from its traditional form to a form that is suitable for packet transmission. Specifically, the agent encodes, compresses and encapsulates the information into a plurality of data packets that are suitable for being carried by the communication network. Examples of agents include IP telephones, VoIP network interfaces, certain private branch exchanges (PBXs), personal computers (PCs) running communication applications, certain personal digital assistants (PDAs), network devices providing voice gateway services and so on.
In certain communication networks, such as VoIP networks, a session protocol is typically employed to establish a session (connection) that supports a call between a calling party and a called party. An example of a session protocol that is commonly used is the well-known Session Initiation Protocol (SIP) which is described in J. Rosenberg et al., “SIP: Session Initiation Protocol,” Internet Engineering Task Force (IETF) Request For Comments (RFC) 3261. SIP may operate at the application layer of the OSI-RM and is defined to establish and maintain sessions between endpoints (e.g., SIP-based telephones) in a communication network.
In accordance with SIP, endpoints may be referred to as User Agents (UAs). When a UA comes on-line, it typically registers with a registration service, called a policy data point (PDP), using a SIP “register” (REGISTER) command. The PDP maintains information about the UA which may include its location, how to reach it and authentication information associated with the UA that may be used to authenticate the UA. Typically, after a UA is registered, the UA is available to receive as well as initiate calls.
When a call is initiated by a calling party to a called party, a session is typically established between the calling and called parties' UAs to support the call. Establishing a session between the parties typically involves (a) authenticating both parties and (b) successfully exchanging a sequence of messages between the parties in a predetermined manner. Authentication typically involves ensuring the parties have permission to establish a call in the network. The sequence of messages typically includes (a) an invite (INVITE) message issued by the calling party to initiate the session between the calling and called parties, (b) an acknowledgement (OK) message issued by the called party to acknowledge the “invite” message and indicate the called party accepts participation in the session, followed by (c) an acknowledgement (ACK) message issued by the calling party to acknowledge the called party's acceptance. After the session is established, a channel may then be established to transfer media traffic between Users agents and associated with the session. A protocol that is often used to establish a channel in a VoIP network is the Real-time Transport Protocol (RTP) described in H. Schulzrinne et al., “RTP: A Transport Protocol for Real-Time Applications,” IETF RFC 3550.